package com.xd.core.business.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 放款表
 * </p>
 *
 * @author ZX
 * @since 2025-02-27
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class OutInsuranceInfoVo implements Serializable {


    @ApiModelProperty(value = "放款id")
    private Integer outId;

    @ApiModelProperty(value = "进件id")
    private Integer incomingId;

    @ApiModelProperty(value = "债权id")
    private Integer debtId;

    @ApiModelProperty(value = "姓名")
    private String name;

    @ApiModelProperty(value = "手机号")
    private String phone;

    @ApiModelProperty(value = "身份证")
    private String idCard;

    @ApiModelProperty(value = "放款金额")
    private BigDecimal outAmount;

    @ApiModelProperty(value = "执行年华利率（单位：%）")
    private BigDecimal rate;

    @ApiModelProperty(value = "前置服务费")
    private BigDecimal preServiceFee;

    @ApiModelProperty(value = "后置服务费")
    private BigDecimal postServiceFee;

    @ApiModelProperty(value = "收费模式（0--前置，1--后置，2--前置+后置）")
    private String chargeModel;

    @ApiModelProperty(value = "结清日期")
    @JsonFormat(pattern = "yyyy-MM-dd", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date clearDate;

    @ApiModelProperty(value = "放款日期")
    @JsonFormat(pattern = "yyyy-MM-dd", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date payTime;

    @ApiModelProperty(value = "借款方式")
    private String loanMethod;

    @ApiModelProperty(value = "贷款期数")
    private Integer term;

    @ApiModelProperty(value = "投保公司账户名")
    private String accountName;

    @ApiModelProperty(value = "投保公司收款账户")
    private String receivingAccount;

    @ApiModelProperty(value = "投保公司开户银行")
    private String bank;

    @ApiModelProperty(value = "投保公司联行号")
    private String bankCode;

    @ApiModelProperty(value = "还款账号")
    private String repayAccount;

    @ApiModelProperty(value = "还款开户行")
    private String repayBank;

    @ApiModelProperty(value = "还款账户名")
    private String repayName;

    @ApiModelProperty(value = "代缴其他保费金额")
    private BigDecimal otherAmount;

    @ApiModelProperty(value = "首付金额（单位：元）")
    private BigDecimal downRepaymentAmount;

    @ApiModelProperty(value = "预付款总金额（单位：元）")
    private BigDecimal advanceAmount;

    @ApiModelProperty(value = "预付款支付方式(0--银行转账，1--银行代扣)")
    private String payType;

    @ApiModelProperty(value = "预付款支付方式(0--银行转账，1--银行代扣)")
    private String payTypeRemark;

    @ApiModelProperty(value = "商户订单")
    private String orderNo;

    @ApiModelProperty(value = "到账状态（1-申请中，2-成功，3-失败）")
    private String payStatus;

    @ApiModelProperty(value = "银行转账预付款凭证")
    private String voucher;

    @ApiModelProperty(value = "实际到账时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date tradeTime;

    @ApiModelProperty(value = "付款通道(1-通道一，2-通道二)")
    private String payPass;
}
